<?php
class Delivery_Model_DbTable_ItemsPromocion
	extends Delivery_Model_DbTable_Abstract
{
	protected $_name = 'promociones_items';
	protected $_primary = 'idItem';
	
	public function deleteByPromocion( $idPromocion )
	{
		return parent::delete(
			array( 'idPromocion = ?' => $idPromocion)
		);
	}
	
	public function insert( $item ){
		
		$data = array (
			'idPromocion'	=> $item->idPromocion,
			'cantidad'	=> $item->cantidad
		);
		
		if ( !empty( $item->idCategoria )){
			$data['idCategoria'] = $item->idCategoria;
		} 
		elseif ( !empty( $item->idProducto )){
			$data['idProducto'] = $item->idProducto;
		} 
		
		if ( !empty( $item->idsProducto )){
			$data['idsProducto'] = $item->idsProducto;
		} 
		
		return parent::insert( $data );	
	}
	
	public function getByPromocion( $idPromocion ){
		return 
			$this->_db->fetchAll(
				$this->select()->where( is_array($idPromocion) ? 'idPromocion IN (?)' : 'idPromocion = ?', $idPromocion)
			);
	}
			
	public function inAnyItem( $idProducto ){
		
		$select = $this->select( self::SELECT_WITH_FROM_PART )
						->setIntegrityCheck(false)
						->join('promociones', 
								'promociones.idPromocion = promociones_items.idPromocion',
								array())
						->where("activo = 1")
						->where("idProducto = ?", $idProducto, Zend_Db::INT_TYPE )
						->orWhere("idsProducto  REGEXP '^?$|^?,|,?,|,?$'", $idProducto, Zend_Db::INT_TYPE )
						->limit(1);
		
		$result = $this->getAdapter()->fetchRow( $select );
		
		return ! empty( $result );
		
	}
	
}